"use strict";
/*
  ；类的静态属性、静态方法、多态、抽象类
*/
/*
  ES5 类（构造函数）的静态属性和静态方法的使用
    静态方法不能访问到实例属性的和实例的方法的 静态方法只能访问到静态属性

    function show(name) {
      this.name = name
      getName = function () {
        console.log(this.name)
      }
    }

    show.aka = 20
    show.test = function () {
      console.log(show.aka)
    }
*/
// ts中的静态属性，和静态方法
var myQuery = /** @class */ (function () {
    function myQuery() {
        this.name = 'extend jQuery';
    }
    myQuery.prototype.showName = function () {
        // return this.version  会报错 实例方法也没有办法访问到静态属性
        // return myQuery.version  // 不报错
        // return this.version
        /*
          报错 因为实例化之后这个this表示的是实例化之后的对象
            实例对象只能访问实例属性和方法
        */
        return this.name;
    };
    myQuery.updateVersion = function (version) {
        myQuery.version = version;
        console.log(myQuery.version);
    };
    myQuery.version = 'V1.0.0';
    return myQuery;
}());
var jimmyQuery = new myQuery();
console.log(jimmyQuery.showName()); // extend jQuery
myQuery.updateVersion('V2.0.0'); // V2.0.0
/*
  以上便是静态属性和静态方法的使用，也是复习 之前都用过
*/
